Linux 命令- w

        w命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。

命令格式

1
w [参数] [用户名称]

命令选项

  • -f  开启或关闭显示用户从何处登入系统。
  • -h  不显示各栏位的标题信息列。
  • -l  使用详细格式列表,此为预设值。
  • -s  使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。
  • -u  忽略执行程序的名称,以及该程序耗费CPU时间的信息。
  • -V  显示版本信息。

命令功能

        显示目前登入系统的用户信息。

        执行这项指令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w
指令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。

        w命令也用于显示登录到系统的用户情况,但是与who不同的是,w命令功能更加强大,它不但可以显示有谁登录到系统,还可以显示出这些用户当前正在进行的工作,感觉比较实用,具体用法如下:

        w命令的显示项目按以下顺序排列:当前时间,系统启动到现在的时间,登录用户的数目,系统在最 近1秒、5秒和15秒的平均负载。然后是每个用户的各项数据,项目显示顺序如下:登录帐号、终端名称、远 程主机名、登录时间、空闲时间、JCPU、PCPU、当前正在运行进程的命令行。

使用实例

1
2
3
4
[root@localhost ~]# w
20:39:37 up 136 days, 3:58, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM login@ IDLE JCPU PCPU WHAT
root pts/0 222.94.97.122 20:39 1.00s 0.00s 0.00s w

        linux管理员最常用的命令就是这个 w 了,该命令显示的信息还是蛮丰富的。第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载。

        第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等。

  • USER:登录用户名
  • TTY:登录后系统分配的终端号
  • FROM:远程主机名,即从哪里登录的
  • LOGIN@:何时登录
  • IDLE:用户空间时间,这是个计时器,一旦用户执行任何操作,该计时器便会被重置
  • JCPU:和该终端连接的所有进程占用时间。包括当前正在运行的后台作业占用时间
  • PCPU:当前进程所占用的时间
  • WHAT:当前正在运行进程的命令行

        在这些信息中,我们最应该关注的应该是第一行中的 ‘load average:’ 后面的三个数值。

        第一个数值表示1分钟内系统的平均负载值;第二个数值表示5分钟内系统的平均负载值;第三个数值表示15分钟系统的平均负载值。这个值的意义是,单位时间段内CPU活动进程数。当然这个值越大就说明服务器压力越大。一般情况下这个值只要不超过服务器的cpu数量就没有关系,如果服务器cpu数量为8,那么这个值若小于8,就说明当前服务器没有压力,否则就要关注一下了。

        怎么查看服务器有几个cpu

        命令:

1
grep -c 'processor' /proc/cpuinfo

        ‘/proc/cpuinfo’ 这个文件记录了cpu的详细信息。目前市面上的服务器通常都是2颗4核cpu,在linux看来,它就是8个cpu。查看这个文件时则会显示8段类似的信息,而最后一段信息中processor : 后面跟的是 ‘7’ 所以查看当前系统有几个cpu,我们可以使用这个命令: grep -c ‘processor’ /proc/cpuinfo 而如何看几颗物理cpu呢,需要查看关键字 “physical id”

        另外,uptime命令同样可以查看系统负载。实际上uptime得出的结果和w的第一行是一致的。

备注

1) 区别于who命令,w命令不仅可以看到登录服务器的用户信息,而且可以看到这些用户做了什么
2) who am i命令,显示出自己在系统中的用户名,登录终端,登录时间
3) whoami命令,显示自己在系统中的用户名
4) logname命令,可以显示自己初次登录到系统中的用户名,主要识别sudo前后情形
5) last命令,查看最近1个月用户登录服务器的情况
6) tty命令,来查看所连接的设备或终端